package com.sss.hloster0305;

import java.io.File;
import java.util.Scanner;

import org.junit.jupiter.api.Test;
//输入一个路径名和一个关键字字符串，将该路径下的所有的文件名字中包含该关键字的所有的文件信息递归打印出来；
//（如果有子目录文件，继续打印子目录文件中的文件）（可以考虑使用 FilenameFilter接口）
public class FileTestDriver03 {
	@Test
	public void test01() {
		 Scanner sc=new Scanner(System.in);
			System.out.println("请输入一个文件名：");
			String strFileName=sc.nextLine();
			
			  System.out.println("请输入关键字：");
		       String  key=sc.next();
			
			//创建一个文件对象
			 File file=new File(strFileName);
			 Path(file,key);
	}
	  public void Path(File file,String key) {
			
			//判定该文件是否存在，并且不是隐藏文件
			if(file.exists() && !file.isHidden()) {
				//判定是不是文档文件（判定是不是目录文件）
				if(file.isDirectory()) {
					//如果是目录
					File[] subFiles=file.listFiles();
					
					
					//递归调用，打印子文件以及子文件夹下的文件
				
					for(File file2:subFiles) {
						if(file.getName().contains(key)) {
							System.out.println("文件的绝对路径为："+file.getAbsolutePath()+",   文件的名称为："+file.getName()+",  文件的长度为：："+file.length());
						}
						Path(file2,key);		
					}
				}else {
					//如果是文档文件
					if(file.getName().contains(key)) {
						System.out.println("文件的绝对路径为："+file.getAbsolutePath()+",   文件的名称为："+file.getName()+",  文件的长度为：："+file.length());
					}
					
				}
			}else {
				System.out.println("该文件不存在或者隐藏文件。");
			}
	  
	}
}
